package enums.learn;

import com.baomidou.mybatisplus.annotation.EnumValue;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.nsl.my_youlai.Jackson.ColorEnumDeserializer;
import com.nsl.my_youlai.common.base.IBaseEnum;
import lombok.Getter;

//首先枚举是一个特殊的class
//这个class相当于final static修饰，不能被继承
//他的构造方法强制被私有化，下面有一个默认的构造方法private ColorEnum();
//所有的枚举都继承自java.lang.Enum类。由于Java 不支持多继承，所以枚举对象不能再继承其他类

@JsonDeserialize(using = ColorEnumDeserializer.class)
@JsonFormat(shape = JsonFormat.Shape.OBJECT)
public enum ColorEnum implements IBaseEnum<Integer> {
    //每个枚举变量都是枚举类ColorEnum的实例，相当于RED=new ColorEnum（1），按序号来。
    //每个成员变量都是final static修饰
    RED(0,"红"),  YELLOW(1,"黄");

    @Getter
    @EnumValue //  Mybatis-Plus 提供注解表示插入数据库时插入该值
    private Integer value;

    @Getter
    // @JsonValue //  表示对枚举序列化时返回此字段
    private String label;

    ColorEnum(Integer value, String label) {
        this.value = value;
        this.label = label;
    }


    @Override
    public String getEnumCnName() {
        return "颜色类型";
    }
}